/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tpgrandt.UI.model;

import java.util.Vector;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;
import tpgrandt.varios.Integrante;
import tpgrandt.varios.Jugador;

/**
 *
 * @author Sabbag
 */
public class ConsultaModel implements TableModel {
    
    Integrante plantel[];
    String columnas[] = {"Posicion", "Apellido y nombres", "Club", "Puntaje"};
    Vector<TableModelListener> cosas;
    private boolean puntos;

    
    public ConsultaModel(Integrante plantel[], boolean puntos) {
	this.plantel = plantel;
	cosas = new Vector<TableModelListener>();
        this.puntos = puntos;
    }

    public int getRowCount() {
	return plantel.length;
    }

    public int getColumnCount() {
	return 4;
    }

    public String getColumnName(int columnIndex) {
	return columnas[columnIndex];
    }

    public Class<?> getColumnClass(int columnIndex) {
	return String.class;
    }

    public boolean isCellEditable(int rowIndex, int columnIndex) {
	return false;
    }

    public Object getValueAt(int rowIndex, int columnIndex) {

        if (plantel[rowIndex] != null)
	    switch (columnIndex) {
		case 0:
                    switch (plantel[rowIndex].getJugador1ra().getPuesto()) {
                        case Jugador.ARQUERO: return "ARQ";
                        case Jugador.DEFENSOR: return "DEF";
                        case Jugador.VOLANTE: return "VOL";
                        case Jugador.DELANTERO: return "DEL";
                    }
		case 1: return plantel[rowIndex].getJugador1ra().getApellido() + ", " + plantel[rowIndex].getJugador1ra().getNombres();
		case 2: return plantel[rowIndex].getJugador1ra().getClub().getNombre();
                case 3: 
                    if (puntos)
                        return plantel[rowIndex].participa() ? plantel[rowIndex].getPuntos().toString() : "-";
                    else
                        return "-";
		case 4: return plantel[rowIndex].getJugador1ra();
	    }

	return "";
    }

    public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
	if (aValue == null)
	    plantel[rowIndex] = null;
	else
	    plantel[rowIndex] = (Integrante) aValue;
    }

    public void cambiarLista(Integrante plantel[], boolean puntos) {
	this.plantel = plantel;
        this.puntos = puntos;
    }

    public void addTableModelListener(TableModelListener l) {
	cosas.add(l);
    }

    public void removeTableModelListener(TableModelListener l) {
	cosas.remove(l);
    }

}
